const mongoose = require('mongoose');

// 连接MongoDB数据库
mongoose.connect("mongodb://127.0.0.1:27017/Campusrepair")
.then(() => {
    console.log("MongoDB数据库连接成功");
})
.catch((error) => {
    console.log("MongoDB数据库连接失败", error);
})

   
// 用户表
const UserSchema = new mongoose.Schema({
    // 用户唯一id
    user_id: {
        type: String
    },
    // 用户角色，0普通用户，1工作人员
    role: {
        type: Number
    },
    // 名字
    name: {
        type: String
    },
    // 手机号
    mobile: {
        type: String
    },
    // 账号
    username: {
        type: String
    },
    // 密码
    password: {
        type: String
    },
    // 注册时间
    create_time: {
        type: Number
    }
})

// 意见反馈表
const AdviceSchema = new mongoose.Schema({
    // 用户唯一id
    user_id: {  
        type: String
    },
    // 用户微信基本信息
    user_info: {
        type: Object
    },
    // 姓名
    name: {
        type: String
    },
    // 手机号
    mobile: {
        type: String
    },
    // 反馈说明
    content: {
        type: String
    },
    // 创建时间
    create_time: {
        type: Number
    },
    // 状态, 0未处理 1已处理
    status: {
        type: Number
    },
    // 反馈结果
    result: {
        type: String,
        default: ''
    },
    // 角色
    role: {
        type: Number
    }, 
    //关联报修单号id
    order_id: {
        type: String,
        ref: 'ServiceOrder'
    }
})


// 维修订单表
const ServiceOrderSchema = new mongoose.Schema({

    order_id:{
        type:String,
        default: null
    },
    // 发布人id
    user_id: {
        type: String
    },
    // 用户微信基本信息
    user_info: {
        type: Object
    },
    // 姓名
    name: {
        type: String
    },
    // 手机号码
    mobile: {
        type: String
    },

    // 门牌号
    house: {
        type: String
    },
    // 预约上门时间
    visit_time: {
        type: String
    },
    // 故障类型
    fault_type: {
        type: Number
    },
    // 故障图片
    file_list: {
        type: Array
    },
    // 故障描述
    fault_desc: {
        type: String
    },
    // 状态 0 待维修 1 待处理 2 处理中 3 已完成
    status: {
        type: Number,
        default: 0
    },
    // 分配工作人员的id
    worker_user_id: {
        type: String,
        default: ''
    },
    // 发布时间
    create_time: {
        type: Number
    },
    // 工作人员开始处理的图片和文字 text文字 image图片
    start_info: {
        type: Object,
        default: {}
    },
    // 工作人员处理完成图片和文字
    finish_info: {
        type: Object,
        default: {}
    },

    // reassigned:{
    //     type:Boolean,
    //     default:false
    // },

    // reassign_reason:{
    //     type:String,
    //     default:""
    // },
    // cancel_time:{
    //     type:Number
    // }
})

// 管理员表
const AdminSchema = new mongoose.Schema({
    // 账号
    username: {
        type: String
    },
    // 密码
    password: {
        type: String
    },
    // 创建时间
    create_time: {
        type: Number
    },
    // 角色 0 超级管理员 1普通管理员
    role: {
        type: Number
    }
})

const User = mongoose.model("User", UserSchema);
const Advice = mongoose.model("Advice", AdviceSchema);
const ServiceOrder = mongoose.model("ServiceOrder", ServiceOrderSchema);
const Admin = mongoose.model("Admin", AdminSchema);

module.exports = {
    User,
    Advice,
    ServiceOrder,
    Admin
}